#include <stdio.h>
#include <signal.h>

int flag = 0;//在O0以上级别优化，因为在main函数中，操作系统认为是对flag的观察，并没有修改，就将flag的值直接存进cpu每次检查都是cpu内部的检查
//volatile int flag = 0;每次访问flag都将物理内存的值传到cpu在检查
void handler(int sig)
{
    printf("chage flag 0 to 1\n");
    flag = 1;
}
int main()
{
    signal(2, handler);

    while(!flag);
    printf("process quit normal\n");
    return 0;
}



































